// 1. rtk 创建一个模块（切片），模块中，包含 state、reducer actions 方法等
import { createSlice } from '@reduxjs/toolkit'
// 配合 localStorage 刷新页面后 Redux 数据不会丢失，js 对象 需要 JSON.stringfy parse 配合
const userSlice = createSlice({
    // 取一个名字用来标识切片
    name: 'user',
    // 初始化 state
    initialState: {
        loginState: false,
        userinfo: {
            name: '未登录用户',
            role: 1,
            phone: ''
        }
    },
    // 定义对应的切片方法
    reducers: {
        login(state, action) {
            state.loginState = true
            state.userinfo = action.payload
        },
        logout(state) {
            state.loginState = false
            state.userinfo = {
                name: '未登录用户',
                role: 1,
                phone: ''
            }
        }
    }
})

// 为了后面方便使用，解构导出，拿来即用
export const { login, logout } = userSlice.actions;
// 导出当前切片
export default userSlice.reducer;
